﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net.Mail;
using MyWeb.Business;
using MyWeb.Common;


namespace MyWeb.TrangChinh.UC
{
    public partial class ucLostPassword : UserControl
    {
        private readonly UserService _userService = new UserService();

        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void btnSend_Click(object sender, EventArgs e)
        {
          try
            {
                MailMessage message = new MailMessage();
                message.From = new MailAddress("contactcanhcutshop@gmail.com", "Administractor");
                message.To.Add(new MailAddress(txtEmail.Text));
                message.CC.Add(new MailAddress("contactcanhcutshop@gmail.com"));
                message.Subject = "Mật khẩu mới!";
                message.Body = NoiDungMail();
                SmtpClient client = new SmtpClient("relay-hosting.secureserver.net", 25);
                System.Net.NetworkCredential auth = new System.Net.NetworkCredential("contactcanhcutshop@gmail.com", "thanhhhoaktpm2");
                client.EnableSsl = false;
                client.Credentials = auth;
                //client.Credentials = CredentialCache.DefaultNetworkCredentials; 
                client.Send(message);
            }
            catch { }
        }

        private string NoiDungMail()
        {
            string noiDung = string.Empty;
            DataTable dtb = _userService.User_GetUsername(txtEmail.Text);
            if (dtb.Rows.Count > 0)
            {
                noiDung = "Đây là Mail gửi đến từ website của Cánh Cụt Shop..<br>";
                string matKhauMoi = CreateLostPassword(7);
                noiDung += "Mật khẩu mới của bạn là: " + matKhauMoi;
                string tenDangNhap = dtb.Rows[0]["Username"].ToString();
                _userService.User_LosePassword(tenDangNhap, StringClass.Encode("SHA256", matKhauMoi));
                noiDung += "<br>Sau khi đăng nhập bạn nên đổi lại mật khẩu để tiện cho việc đăng nhập lần tiếp theo";
                noiDung += "<br><br><hr>Vui lòng không trả lời Mail này!";
            }
            return noiDung;
        }

        public string CreateLostPassword(int passwordLength)
        {
            string _allowedChars = "abcdefghijk0123456789mnopqrstuvwxyz";
            var randNum = new Random();
            var chars = new char[passwordLength];
            int allowedCharCount = _allowedChars.Length;
            for (int i = 0; i < passwordLength; i++)
            {
                chars[i] = _allowedChars[(int) ((_allowedChars.Length)*randNum.NextDouble())];
            }
            return new string(chars);
        }
    }
}